1. Field of the Invention
The invention generally pertains to the field of remotely located network connected intelligent devices.
2. Description of the Related Art
In legacy bandwidth-limited distributed networks prior to the Internet era, to update the code of a large numbers of (lottery, for example) terminals, a download server typically “pushed” the data to each terminal. Under such a scheme, scheduling and error recovery are carried out entirely under the control of the download server.
However, new generation lottery terminals, gaming machines and Point-of-Sale (POS) terminals based on PC architecture or other multimedia-enabled architecture may require frequent and voluminous updates and downloads of programs and data in order to provide continuously updated rich services. In such systems, downloading is commonly carried out using a traditional “pull” method in which each remote machine is scheduled to initiate a download at a predetermined time from a predetermined remotely located server. At the scheduled time, the entire transfer is carried out under the control of the remote terminal, including error recovery. Well-known and popular downloading utilities include programs such as GetRight (www.getright.com) and Gozilla (www.gozilla.com). Using such programs, however, the server that delivers the data file to be downloaded by the remote terminal devices is usually a generic FTP server that does not have capability of intelligently managing the network traffic.
Geographically distributed download cache technologies, such as available from Akamai (www.akamai.com) and Digital Island “2Deliver” service (www.digitalisland.com) accelerate Internet network performance when downloading static data from global Internet servers. For example, Amakai has deployed on the order of 10,000 servers around the world.
There is a significant risk for the network that links the remote terminal devices and the central system to be subjected to unauthorized intrusion, virus infection and distributed denial of service (DDOS); consequently costly bandwidth limited private networks are often preferred. Alternatively, Virtual Private Networks (VPN) to carry secure communication through an encrypted tunnel via the Internet is becoming increasingly popular for company inter-communications. However, the setup and infrastructure management costs are high, as is the cost of training software developers. Moreover, the scalability of VPNs to very a large number of client devices has not been demonstrated at this time.
Uncontrolled data downloads may render the operational network traffic useless, with the same consequences as Distributed Denial Of Service attacks (DDOS); therefore, data downloading is conventionally scheduled outside of operational hours. The requirement to perform data downloads outside operational hours results in significant waste of data bandwidth resources and longer download campaigns.
In addition, with the traditional “pull” download method, there is no feed-back that would enable performing a close-loop regulation of the individual terminal device download rates in order to ensure a uniform or predetermined download level. Although the “push” method allows fine-grained download bandwidth throttling, error recovery management requires a very complex download server that cannot easily scale to a very large number of client devices. Legacy distributed network also make use of broadcast download techniques, but error recovery is complex and the Internet infrastructure cannot readily support such broadcast download techniques.
FIG. 6 is a flowchart illustrating a conventional unregulated download session. In FIG. 6, the boundaries between the remote device (such as devices 104-122, for example), the network 124 and the transactional server 102 of FIG. 1 are shown in dashed lines. According to the conventional method of FIG. 6, a device whose identifier (ID) is XYZ initiates a download session to retrieve data file ABC from a server 102, at step S601. The download session then requests the first packet of file ABC, as shown at S602. The server 102 receives this request, opens a download session for file ABC at S603, retrieves packet #1 and sends the retrieved packet #1 to the requesting remote device at S605. The remote device receives packet #1 from the server and stores it, as shown at S606. Packet #2 is then requested, retrieved and sent back to and stored by the remote device, as shown at S607, S608, S609 and S610. The remote device then continues in a similar manner, until Packet n is requested at S611 and retrieved at S612. As the transactional determines that Packet n is the last packet of file ABC, the server 102 sets a last packet flag at S613 and sends the last Packet n together with the last packet flag at S614. The remote device then receives this last Packet and stores it, as shown at S615. Upon receipt of the last packet flag together with the last Packet n, the remote device closes the download session, as shown at S616. Upon confirmation of the good receipt of file ABC by the remote device, the server 102 may then close the download session opened in step S603.
As shown in FIG. 6, the remote device initiates the download session, which session is ended by the remote device when the last data packet is received. The remote device, therefore, is called the session master. Details of error recovery are not shown in FIG. 6. However, it will be apparent to those of skill that the remote device may request the transmission or re-transmission of any packet. The flow of data in FIG. 6 is un-regulated and download speed is inherently limited by the capacity and congestion of the network 124. Each remote device “fights” to get its own data immediately. When considering a very large number of download sessions using the same unregulated scheme, data traffic can be drawn down to a crawl, thereby denying high priority traffic and resulting in the dreaded DDOS (Distributed-Denial-Of-Service). Although QOS (Quality-Of-Service) mechanisms are available in order to route traffic according to priority attributes, such mechanisms are not universally implemented in routers across all wide area networks. Consequently, prioritization of traffic using QOS or other similar scheme by routers does not regulate data traffic in a satisfactory manner.